메인 콘텐츠로 이동하기
  1. 블로그 글/

통계 - 단일표본 T 검정(One Sample t-Test)

본 글은 통계학에서 사용되는 단일표본 T 검정을 설명하기 위해 작성되었습니다.

또한, 파이썬 Scipy 라이브러리를 활용하여 단일표본 T 검정을 진행하도록 하겠습니다.

단일표본 T 검정 #

단일표본 T 검정이란 통계 분석에서 사용되는 가설 검정 방법 중 하나로, 하나의 표본에 대한 평균을 검정하는데 사용됩니다. 주로 모집단의 평균이 어떤 특정 값과 같은지를 확인하고자 할 때 적용됩니다.

단일표본 T 검정은 다음과 같은 단계로 이루어집니다.

1. 가설 설정 #

H₀ : 𝜇 = 𝜇₀  → 귀무가설 모평균과 표본평균은 같다.
H₁ : 𝜇 ≠ 𝜇₀  → 대립가설 모평균과 표본평균은 같지 않다.

2. 표본 추출 #

모집단에서 표본을 추출하여 해당 표본의 평균을 계산합니다.

3. 가설 검정 통계량 계산 #

t-통계량을 계산합니다. 이는 표본 평균과 가설에 기반한 예상 평균 간의 차이를 나타냅니다.

4. 결정 / 결론 #

계산된 t-통계량이 기각역 안에 들어가면 귀무가설을 기각하고 대립가설을 채택합니다.

그렇지 않으면 귀무가설을 기각하지 않습니다.

  • 양측검정일 경우, 기각역은 양측에 대칭되는 t-분포의 양 끝 부분입니다.

귀무가설을 기각했을 경우, 표본이 모집단과 다르다고 결론내립니다.

반대로 기각하지 못했을 경우, 통계적으로 유의하지 않다고 결론내립니다.

파이썬 라이브러리 Scipy 활용 방법 #

다음은 파이썬 Scipy 라이브러리를 활용하여 단일표본 T 검정을 진행하도록 하겠습니다.

이번에 다루는 데이터에는 나무 31그루의 둘레와 높이, 부피가 저장되어 있습니다.

이 표본의 평균이 모평균과 일치하는지 단일표본 T 검정을 통해 알아보고자 합니다. 가설은 아래와 같습니다.

유의수준은 0.05로 설정하도록 하겠습니다.

가설검정

귀무가설 : 평균은 75이다.

대립가설 : 평균은 75가 아니다.

우선 데이터를 불러오도록 하겠습니다.

>>> import pandas as pd 
>>> df = pd.read_csv("./data/trees.csv")
>>> df.head()
Girth Height Volume
0 8.3 70 10.3
1 8.6 65 10.3
2 8.8 63 10.2
3 10.5 72 16.4
4 10.7 81 18.8

또한, 표본 평균 ‘Height’의 평균을 구해보도록 하겠습니다.

>>> result = df['Height'].mean()
>>> round(result, 2) # (반올림하여 소숫점 둘째 자리까지 계산)
76.0

다음으로, 단일표본 T 검정을 위해 Scipy 라이브러리를 불러오도록 하겠습니다.

>>> from scipy import stats

단일표본 T 검정은 Scipy 내 ttest_1samp를 사용하여 검정합니다.

참조: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html

그 다음으로, 가설 검정 통계량 계산하도록 하겠습니다.

>>> from math import sqrt
>>> t_score, p_value = stats.ttest_1samp(df['Height'], popmean=75)
>>> print(round(t_score, 2), round(p_value, 2))
0.87 0.39

popmean은 귀무가설에서 예상한 평균과 같습니다.

위의 통계량에 대한 p-값을 구한 후(반올림하여 소숫점 넷째 자리까지 계산), 유의수준 0.05하에서 가설검정의 결과를 귀무가설을 기각할 것인지, 기각하지 못할 것인지 확인하도록 하겠습니다.

>>> print(round(p_value, 4))
0.3892

>>> if p_value >= 0.05:
   	print("채택")
    else:
    	print("기각")
채택

따라서, 표본 평균은 모평균과 같다는 귀무가설을 기각하지 못하였습니다.